package 其他.Acwing;

import org.junit.Test;

import java.util.Scanner;

import static MyUtils.MHUtils.*;
import static MyUtils.MHMoban.*;

/*
表示所求元素的起始位置和终止位置
https://www.acwing.com/problem/content/791/

 错点：1 check右侧，找的是左边界
      2 有else
      3 第二次二分要l=0r=n从新初始化
*/
public class Main {
    static int[] p;
     
    public static void main(String[] args) {
//        int[] p = {1,2,2,3,3,4};
//        int l=0, r=p.length-1;
//        int x = 3;
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
        p = new int[n];
        for (int i = 0; i < n; i++) {
            p[i] = sc.nextInt();
        }
        for (int i = 0; i < k; i++) {
            f(sc.nextInt());
        }
    }

    static void f(int x){
        int l=0, r=p.length-1;
        //右侧>= 出左边界
        while(l<r){
            int m = l+r>>1;
            if(p[m]>=x)r=m;
            else l=m+1;
        }
        //不满足会返回第一个>=的，这里没找到=的，就是第一个>的
        if(p[l]!=x){
            System.out.println("-1 -1");
            return;
        }
        int resL = l;

        //重新初始化lr
        l=0;r=p.length-1;
        //左侧<= 出右边界
        while(l<r){
            int m = l+r+1>>1;
            if(p[m]<=x)l=m;
            else r=m-1;
        }
        int resR = l;
        System.out.println(String.format("%s %s", resL,resR));
    }
}
